2.Dart SDK 构建脚本

Dart SDK 由 tools/build.py 触发编译,它的功能为调用GN(Generate Ninja)和Ninja来构建Dart SDK。它支持多种配置选项,如目标操作系统、构建模式、架构和sanitizer等。

整体流程:

关键函数:


BuildOptions 命令行参数

BuildOptions 定义了 tools/build.py 命令行参数:

参数 类型 默认值 描述
-j int 4 Ninja -j 选项,用于 Goma/RBE 构建
-l int 1 Ninja -l 选项,用于 Goma/RBE 构建
--no-start-goma bool False 不尝试启动 goma
--no-start-rbe bool False 不尝试启动 rbe
--check-clean bool False 检查 Ninja 的第二次调用是否没有任何操作
build_targets list [] 构建目标列表

请注意:

  1. --no-start-goma 参数实际上被设置为 no_start_rbe 目标变量。这可能是一个遗留问题或特意的设计。
  2. build_targets 是一个位置参数,可以接受多个值。
  3. 还有一些参数是通过 gn_py 模块的函数添加的,它们被分为"Configuration Related Arguments"、"GN Related Arguments"和"Other Arguments"三组

Example

编译 Dart SDK:

./tools/build.py --no-goma --mode release --arch x64 create_sdk

编译 runtime:

./tools/build.py --no-goma --mode release --arch x64 runtime

Targets

./tools/build.py 都能构建哪些 targets 呢?可全局搜索 gn 文件中的 group("


本文作者:Maeiee

本文链接:2.Dart SDK 构建脚本

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!